import Vue from 'vue'
import VueRouter from 'vue-router'
import routes from './routes'
import store from '../store'

Vue.use(VueRouter)

// 创建 VueRouter 对象实例
const router = new VueRouter({
  mode: 'history', // 路由模式
  base: process.env.BASE_URL, // 默认为 '/'
  routes,
})

// 需要登录的页面
const permissionRoutes = ['/confirm']

// 注册全局前置守卫
// 进入每个页面前都会执行到该守卫的回调函数
router.beforeEach((to, from, next) => {
  if (permissionRoutes.includes(to.path)) {
    // 判断用户是否已登录，如果已登录，则正常进入下一步。
    // 如果用户未登录，则跳转到登录页面进行登录操作

    // 从 store 中获取用户登录的 token 数据，判断
    if (store.state.user.token) {
      // 有 token 说明用户已登录，则正常进入下一步
      next()
    } else {
      // 没有 token 说明用户未登录，需要跳转到登录页面
      next('/login')
    }
  } else {
    next()
  }
})

export default router
